package com.yidu.ladder.route.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.ladder.route.domain.BusStation;
import com.yidu.ladder.route.domain.BusStationVo;
import com.yidu.ladder.route.service.BusStationService;

/**
 * 
 * @ClassName: BusStationController
 * @Description: 汽车站控制器
 * @author ChenLin
 * @date 2019-12-25 02:42:01
 */
@Controller
@RequestMapping(value = "/route/")
public class BusStationController {
	
	
	@Autowired
	private BusStationService busStationService;
	
	
	public BusStationService getBusStationService() {
		return busStationService;
	}


	public void setBusStationService(BusStationService busStationService) {
		this.busStationService = busStationService;
	}
	
	/**
	 * 
	* @Title: queryBusStationbycondition 
	* @Description: 带条件的查询汽车站
	* @param busStationVo 汽车站实体包装类
	* @return Map<String,Object> 返回这个map集合
	* @author Panda
	* @date 2020年1月6日下午4:42:47
	 */
	@ResponseBody
	@RequestMapping(value = "busStations",method = RequestMethod.GET)
	public Map<String, Object> queryBusStationbycondition (BusStationVo busStationVo){
		// 调用带条件的分页查询路线信息方法
		Map<String, Object> map = busStationService.queryBusStationbycondition(busStationVo);
		// 返回这个map
		return map;
	}
	
	/**
	 * 
	* @Title: queryBusStationWithPage 
	* @Description:  带条件的分页查询汽车站
	* @param busStationVo 汽车站实体包装类
	* @return Map<String,Object> 返回这个map集合
	* @author Panda
	* @date 2020年1月6日下午4:43:41
	 */
	@ResponseBody
	@RequestMapping(value = "busStation",method = RequestMethod.GET)
	public Map<String, Object> queryBusStationWithPage(BusStationVo busStationVo){
		
		// 调用汽车站服务类的带条件分页查询
		Map<String, Object> busStationMap = busStationService.queryBusStationWithPage(busStationVo);
		
		// 返回查询后的结果
		return busStationMap;
	}
	
	/**
	 * 
	* @Title: saveBusStation 
	* @Description: 条件汽车站方法
	* @param busStationVo 汽车站实体包装类
	* @return int 添加的行数
	* @author Panda
	* @date 2020年1月6日下午4:45:01
	 */
	@ResponseBody
	@RequestMapping(value = "busStation",method = RequestMethod.POST)
	public int saveBusStation(BusStationVo busStationVo) {
		// 执行添加汽车站方法
		int result = busStationService.saveBusStation(busStationVo);
		// 返回添加汽车站方法的结果集
		return result;
	}
	
	/**
	 * 
	* @Title: updateBusStationById 
	* @Description: 根据id修改汽车站信息
	* @param busStationVo 汽车站实体包装类
	* @return int 修改的行数
	* @author Panda
	* @date 2020年1月6日下午4:45:20
	 */
	@ResponseBody
	@RequestMapping(value = "busStation",method = RequestMethod.PUT)
	public int updateBusStationById(BusStationVo busStationVo) {
		// 执行根据id修改汽车站方法
		int result = busStationService.updateBusStationById(busStationVo);
		// 返回根据id修改汽车站方法的结果
		return result;
	}
	
	/**
	 * 
	* @Title: frozenORrecoverBusStation 
	* @Description: 冻结或还原汽车站状态方法 
	* @param busStationIds 汽车站id
	* @param useable 状态
	* @return String 修改的后的字符串标记
	* @author Panda
	* @date 2020年1月6日下午4:45:41
	 */
	@ResponseBody
	@RequestMapping(value="busStation/{busStationId}/{useable}",method=RequestMethod.DELETE)
	public String frozenORrecoverBusStation(@PathVariable("busStationId") String busStationIds, @PathVariable("useable") String useable) {
		// 调用冻结或还原汽车站状态方法
		boolean result = busStationService.frozenOrRecovebusStation(busStationIds, useable);
		// 判断是否为false
		if(result==false) {
			// 如果为false返回fail
			return "fail";
		}
		// 不为false返回success
		return "success";
	}
	
	/**
	 * 
	* @Title: deleteBusStationById 
	* @Description: 根据id删除汽车站方法 
	* @param busStationId 汽车站id
	* @return int 删除后行数
	* @author Panda
	* @date 2020年1月6日下午4:47:28
	 */
	@ResponseBody
	@RequestMapping(value = "busStation/{busStationId}",method = RequestMethod.DELETE)
	public int deleteBusStationById(@PathVariable("busStationId") String busStationId) {
		
		// 执行根据id删除汽车站方法
		int result = busStationService.deleteBusStationById(busStationId);
		
		// 返回执行根据id删除汽车站的结果
		return result;
	}
	
	/**
	 * 
	* @Title: queryAllBusStation 
	* @Description: 查询所有汽车站
	* @return List<BusStation> 查询的汽车站集合
	* @author Panda
	* @date 2020年1月6日下午4:47:53
	 */
	@ResponseBody
	@RequestMapping(value = "allBusStation",method = RequestMethod.GET)
	public List<BusStation> queryAllBusStation (){
		// 调用查询所有汽车站的方法
		List<BusStation> list = busStationService.queryAllBusStation();
		// 返回这个集合
		return list;
	}
	/**
	 * 
	* @Title: queryAllCity 
	* @Description: 查询所有城市 
	* @return List<BusStation> 查询后的集合
	* @author Panda
	* @date 2020年1月6日下午4:48:09
	 */
	@ResponseBody
	@RequestMapping(value = "queryAllCity",method = RequestMethod.GET)
	public List<BusStation> queryAllCity (){
		// 调用查询所有城市的方法
		List<BusStation> list = busStationService.queryAllCity();
		// 返回这个集合
		return list;
	}
	/**
	 * 
	* @Title: queryAllBusStationByCity 
	* @Description: 根据城市名查询汽车站信息方法 
	* @param city 城市
	* @return List<BusStation> 查询后的集合
	* @author Panda
	* @date 2020年1月6日下午4:49:21
	 */
	@ResponseBody
	@RequestMapping(value = "queryAllBusStationByCity",method = RequestMethod.GET)
	public List<BusStation> queryAllBusStationByCity(String city){
		// 调用根据城市名查询汽车站方法
		List<BusStation> busList = busStationService.queryAllBusStationByCity(city);
		// 返回这个集合
		return busList;
	}
}
